home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / formats / hdf / hdfs.ch3 < prev    next >
Text File  |  1980-02-06  |  14KB  |  420 lines

  1.  
  2.  
  3. Chapter 3    Sets and Groups
  4.  
  5.  
  6.  
  7. Chapter Overview
  8. Sets
  9. Types of Sets
  10. Calling Interfaces for Sets
  11. Groups
  12. Sample Groups
  13. General Features of Groups
  14. Raster Image Sets
  15. Raster-8 Set
  16. Raster Image Set
  17. Tags for Raster Image Sets
  18. Compression of Raster Images
  19. Compatibility Between Raster-8 and Raster 
  20. Image Sets
  21. Scientific Data Sets
  22. Required Tags
  23. Optional Tags
  24.  
  25. Chapter Overview
  26.  
  27. This chapter describes raster image sets and scientific data sets, 
  28. explains the role of sets and groups in an HDF file, and discusses 
  29. the routines that are available for storing and retrieving scientific 
  30. data sets.
  31.  
  32.  
  33. Sets
  34.  
  35. Sometimes tags are grouped into sets, where each set is designed to 
  36. serve a particular user requirement. For example, the raster 
  37. image set, which is described in the following sections, contains 
  38. several tags that are used for storing information about 8-bit raster 
  39. images.
  40.  
  41. One advantage of using sets is that it allows different sites to 
  42. implement different parts of the entire HDF specification. When 
  43. you take an HDF file to a new site, you obtain a list of supported sets 
  44. and your file is perfectly valid for operations dealing with those 
  45. sets. Other data which you may have stored in your file is ignored 
  46. at that site but is still there when you transfer the file back.
  47.  
  48. Each HDF set is defined in terms of a minimum collection of data 
  49. objects that must be present whenever the set is used. For instance, 
  50. every raster image set must contain at least the following three 
  51. data objects:  an image dimension record, which gives the width 
  52. and height of the corresponding image; raster image data, which 
  53. consists of the pixel values that make up the image; and a raster 
  54. image group, which lists of all of the members in the set.
  55.  
  56. In addition, there are also optional data objects that may be 
  57. included in a set. A raster image set, for instance, often contains a 
  58. palette, or lookup table, which gives the red, green, and blue values 
  59. to be associated with each pixel in the raster image data.
  60.  
  61. Types of Sets
  62. At this time, three sets have been implemented two sets for storing 
  63. 8-bit raster images, and a scientific data set for storing sets of 
  64. floating point numbers. Specifications are given for these sets in 
  65. following sections.
  66.  
  67. Some important sets that may be added later include:
  68.  
  69. Utility set    basic utilities
  70. Utility II    suggested utilities
  71. Composite set    combinations of tags and movie organization
  72. Vector    vector and polygon images
  73. Raster image set    extension of raster set to 24-bit images
  74.  
  75.  
  76. Calling Interfaces for Sets
  77. NCSA provides calling interfaces for all the HDF sets that it 
  78. supports. The primary purpose of these calling interfaces is to 
  79. provide libraries of routines for reading and writing the data that 
  80. is associated with each set. The libraries currently supported at 
  81. NCSA are callable from either C or Fortran programs. 
  82.  
  83. In addition to the libraries, a growing number of command-line 
  84. utility routines are available for working with sets. For example, a 
  85. utility called r8tohdf is an HDF command that converts one or 
  86. more raw raster images to HDF 8-bit raster image set  format.
  87.  
  88. NCSA supports calling interfaces for the following machines:  
  89. Cray (UNICOS), Alliant (CONCENTRIX), Silicon Graphics 
  90. (UNIX), Sun (UNIX), Macintosh (MacOS), and IBM PC/AT 
  91. (MS-DOS). The calling interfaces that are currently available 
  92. are described in the NCSA HDF manual.
  93.  
  94.  
  95. Groups
  96.  
  97. An HDF set is a collection of HDF data objects in a file. Unless 
  98. some mechanism is used to identify explicitly those objects that 
  99. belong to a set, there is often no way to tie them together. This 
  100. problem is solved in HDF by means of groups. A group is a data 
  101. object that explicitly identifies all of the data objects in a set.
  102.  
  103. Since a group is a type of data object, its structure is like that of any 
  104. other data object. A group data identifier (tag/ref) points to a data 
  105. element that consists of the collection of data identifiers that make 
  106. up the corresponding set. A group tag can be defined for any set. 
  107. For instance, raster image group (RIG) is the group tag used to 
  108. group members of raster image sets; RIG data consists of a list of 
  109. all data identifiers that belong to a particular raster image set.
  110.  
  111. Groups provide a convenient mechanism for application programs 
  112. to locate all of the information that they need about a set. 
  113. Application programs that deal with RIGs, for instance, read all of 
  114. the elements in a RIG group, using only those that they need for 
  115. their application and ignoring the others.
  116.  
  117.  
  118. Sample Groups
  119. Suppose that the two images shown in Figure 1.5 are organized into 
  120. two sets with group tags. Since they are images, they may be stored 
  121. as RIG groups. Figure 3.1 illustrates the type of organization that 
  122. incorporates RIG groupings of these images.
  123. Figure 3.1    Physical 
  124. Organization of 
  125. Sample RIG 
  126. Groupings
  127.  
  128.  Offset    Contents
  129.     0    FH
  130.     4    DDH    (5    0L)
  131.     10    DD    (FID    1    130    4)
  132.     22    DD    (FD    1    134    41)
  133.     34    DD    (IP    1    175    768)
  134.     46    DD    (ID    1    943    4)
  135.     58    DD    (RI    1    947    240000)
  136.     70    DD    (ID    2    240947    4)
  137.     82    DD    (RI    2    240951    240,000)
  138.     94    DD    (RIG    1    480951    12)
  139.     106    DD    (RIG    2    480963    12)
  140.     118    DD    (empty)
  141.     130    "sw3"
  142.     134    "solar wind simulation:  third try. 8/8/88"
  143.     175    <data for image palette>
  144.     943    <data for 1st image dimension rec>: 400, 600
  145.     947    <data for 1st raster image>
  146.     240947    <data for 2nd image dimension rec>: 400, 600
  147.     240951    <data for 2nd raster image>
  148.     480951    tag/refs for 1st RIG:  IP/1, ID/1, RI/1
  149.     480963    tag/refs for 2nd RIG:  IP/1, ID/2, RI/2
  150.  
  151.  
  152.  
  153. The HDF file structure depicted in Figure 3.1 reflects the grouping 
  154. of raster image sets. This file contains the same raster image 
  155. information as the file in Figure 1.5, but the information is 
  156. organized into two sets and groups. Note that there is only one 
  157. palette (IP8/1) and it is included in both groups.
  158.  
  159.  
  160. General Features of Groups
  161. Figure 3.1 also illustrates a number of important general features 
  162. of groups:
  163.  
  164.      The contents of each set are consistent with one another. Since 
  165. the palette (IP8) is designed for use with 8-bit images, the image 
  166. must be an 8-bit image, rather than a 24-bit, 12-bit, or other 
  167. image.
  168.  
  169.      An application program can easily process all of the images in 
  170. the file by accessing the groups in the file. The non-RIG 
  171. information contained in the file can be either used or ignored, 
  172. depending on the needs and capabilities of the application 
  173. program.
  174.  
  175.      There is usually more than one way to group sets. For example, 
  176. an extra copy of the image palette (IP8) could have been stored in 
  177. the file, so that each grouping would have its own image palette. 
  178. But in this instance that is not necessary because the same 
  179. palette is to be used with both images. On the other hand, in this 
  180. example there are two image dimension records (one per group), 
  181. even though one would suffice.
  182.  
  183.      Group status does not alter the fundamental role of HDF objects. 
  184. They are still accessible as individual data objects, despite the 
  185. fact that they also belong to raster image sets. In a very real 
  186. sense, the individual data elements are in the file regardless of 
  187. whether or not there are groups.
  188.  
  189. What each of the RIGs does is provide an index showing what 
  190. sets exist and what their members are. There is nothing to 
  191. prevent the imposition of other groupings (indexes) that provide 
  192. a different view of the same collection of data objects. In fact, 
  193. HDF is designed to encourage the addition of alternate views, 
  194. when appropriate.
  195.  
  196.  
  197. Raster Image Sets
  198.  
  199. There are currently two sets for handling raster images:  the 
  200. raster-8 set and the raster image set. The raster-8 set was the first 
  201. raster set to be implemented.  It includes a small set of data objects 
  202. for efficiently storing and retrieving color raster images.  The 
  203. raster image set is more powerful, but it is also more complex.  
  204. Raster image sets can include more detailed information about a 
  205. raster image than a raster-8 set can.  Both sets are supported by 
  206. HDF software.
  207.  
  208.  
  209. The Raster-8 Set
  210. The raster-8 set  is a set of tags that provide the basic information 
  211. necessary to store 8-bit raster images in a data file and display 
  212. them accurately without prompting the user to supply dimensions 
  213. or color information. The raster-8 set consists of the tags presented 
  214. in Table 3.1.
  215.  
  216. Table 3.1    Tags for Raster-8 Sets
  217. Tag    Contents of Data Element
  218. RI8    eight-bit raster image data
  219. CI8    eight-bit raster image data compressed with
  220.     run-length encoding
  221. II8    IMCOMP compressed image data
  222. ID8    image dimension record
  223. IP8    image palette data
  224.  
  225. Even though the raster-8 set is minimal and is superseded in most 
  226. applications by the raster image set, some implementations may 
  227. want to deal with this type of data in a rough form for prototyping or 
  228. simple applications. The data stored is compatible with the raster 
  229. image set. For more information, refer to the section entitled 
  230. "Compatibility Between Raster-8 and Raster Images Sets."
  231.  
  232. If you develop software for processing raster-8 sets, it must support 
  233. RI8, ID8, and IP8. If you do not implement CI8 or II8, then be sure to 
  234. provide appropriate error indicators to higher layers that might 
  235. expect to find these tags.
  236.  
  237.  
  238. The Raster Image Set
  239. The raster image set provides a framework for storing images and 
  240. any number of optional image descriptors. It provides for a 
  241. description of the image data layout, with the optional presence of 
  242. color look-up tables, aspect ratio, color correction, associated matte 
  243. or other overlay information, or any other data related to the 
  244. display of the image.
  245.  
  246. Tying everything together is the raster image group (RIG), 
  247. examples of which were given earlier (Figure 3.1). A RIG contains 
  248. a list of data identifiers that point in turn to the data objects that 
  249. describe and make up the image.
  250.  
  251. The number of entries in a RIG is variable and the presence of 
  252. most of the description information is optional. Complex 
  253. applications can store data identifiers of image-modifying data, 
  254. such as the color table and aspect ratio, in the RIG along with the 
  255. reference to the image data itself. Simple applications can use 
  256. simple application level calls and ignore specialized video 
  257. production or film color correction parameters.
  258.  
  259. NCSA currently supports a calling interface, documented in the 
  260. NCSA HDF manual, defined for the easy storage and retrieval of 
  261. 8-bit raster images using RIGs. The interface is called RIS8 and it 
  262. handles 8-bit color tables and different compression capabilities. 
  263. Calling interfaces for storing 24-bit images and other special 
  264. cases are under development.
  265.  
  266.  
  267. Tags for Raster Image Sets
  268. The tags presented in Table 3.2 must be fully supported by any 
  269. raster image set implementation.
  270.  
  271. Table 3.2    Tags for Raster 
  272. Image Sets
  273. Tag    Contents of Data Element
  274. RIG    raster image group
  275. ID    image dimension record
  276. RI    raster image data
  277.  
  278. With full support for the above tags, images can be stored and read 
  279. from HDF files at any bit depth, with several different component 
  280. ordering schemes. Colors would be up to the calling program to 
  281. assign if the image is not in true color. In addition to the required 
  282. tags that just define an image data set, the tags listed in Table 3.3 
  283. define color properties and other image features. These tags are 
  284. described fully in Appendix A.
  285.  
  286. Table 3.3    Additional Tags for 
  287. Raster Image Sets
  288. Tag    Contents of Data Element
  289. XYP    XY position of image
  290. LD    look-up table dimension record
  291. LUT    color look-up table for non true-color images
  292. MD    matte channel dimension record
  293. MA    matte channel data
  294. CCN    color correction factors
  295. CFM    color format designation
  296. AR    aspect ratio
  297. MTO    machine-type override
  298.  
  299.  
  300. Compression of Raster 
  301. Images
  302. Tags for two types of compression have been defined for raster 
  303. images. They are run-length encoding (RLE) and IMCOMP 
  304. aerial averaging (IMC). Each encoding tag is documented under 
  305. its specific tag type (see Appendix A.) Support for RIG and RI does 
  306. not require that all of the compression tag types be supported. If you 
  307. find an unknown compression type, provide a suitable error 
  308. message to the user.
  309.  
  310.  
  311. Compatibility Between 
  312. Raster-8 and Raster Image 
  313. Sets
  314. In order to maintain backward compatibility with raster-8 sets, 
  315. raster image set interfaces store tag/refs for both types of sets in 
  316. HDF raster image files. For example, if an image is stored as part 
  317. of a raster image set, there will be one copy each of the image 
  318. dimension data, image data, and palette data stored, but there will 
  319. be two sets of tag/refs pointing to each data element, one from each 
  320. set. The image data, for instance, will be associated with tag RI8 
  321. and RI.
  322.  
  323.  
  324. Scientific Data Sets
  325.  
  326. The scientific data set defines a scientific data group, which can 
  327. contain a variable number of scientific data descriptors. Current 
  328. specifications only support floating point scientific data organized 
  329. in rectangular grid arrays. Rank and dimension sizes may vary. 
  330. A user interface exists for storing and retrieving scientific data 
  331. sets. See the NCSA HDF manual for details.
  332.  
  333.  
  334. Required Tags
  335. HDF scientific data sets must always contain at least the data 
  336. objects listed in Table 3.4.
  337.  
  338. Table 3.4    Required Tags for 
  339. Scientific Data Sets
  340. Tag    Contents of Data Element
  341. SDG    scientific data group
  342. SDD    scientific data dimension record for array-stored 
  343. data. It includes the rank (number of dimensions) 
  344. and the size of each dimension.
  345. SD    scientific data
  346.  
  347. Optional Tags
  348. The data objects presented in Table 3.5 are optional. Inclusion of 
  349. these objects is supported by NCSA's user interface for scientific 
  350. data sets.
  351.  
  352. Table 3.5    Optional Tags for 
  353. Scientific Data Sets
  354. Tag    Contents of Data Element
  355. SDS    scales along the different dimensions to be used when 
  356. interpreting or displaying the data
  357. SDL    labels for all dimensions and for the data. Each of the 
  358. dimension labels can be interpreted as an independent 
  359. variable, and the data label as the dependent variable.
  360. SDU    units for all dimensions and for the data
  361. SDF    format specifications to be used when displaying 
  362. values of the data
  363. SDM    maximum and minimum values of the data
  364. SDC    coordinate system to be used when interpreting or 
  365. displaying the data
  366.  
  367. 3.1    NCSA 
  368. HDF 
  369. Specifi
  370. cations
  371.  
  372. Sets 
  373. and 
  374. Groups    3.1
  375.  
  376. Nationa
  377. Center 
  378. for 
  379. Superco
  380. mputing 
  381. Applica
  382. tions
  383.  
  384. March 
  385. 1989
  386.  
  387.                                                                 
  388.  
  389.  
  390.  
  391.  
  392. 3.1    NCSA 
  393. HDF 
  394. Specifi
  395. cations
  396.  
  397. Sets 
  398. and 
  399. Groups    3.1
  400.  
  401. Nationa
  402. Center 
  403. for 
  404. Superco
  405. mputing 
  406. Applica
  407. tions
  408.  
  409. March 
  410. 1989
  411.  
  412.                                                                 
  413.  
  414.  
  415.  
  416.  
  417.  
  418.